home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Precision Software Appli…tions Silver Collection 4
/
Precision Software Applications Silver Collection Volume 4 (1993).iso
/
new
/
dcg303.arj
/
NEWGAME.ARJ
/
PRISONER.SCR
< prev
next >
Wrap
Text File
|
1993-06-27
|
4KB
|
142 lines
!
! Default prisonner script..
!
! (c) DC Software, 1992
!
!------------------------------------------------------------------------!
:@TALK ! Talk to the character !
!------------------------------------------------------------------------!
if player.hp = 0 then
writeln( player.name, " is dead!" );
STOP;
endif;
if npc.picture >= 0 then
viewpcx(npc);
endif;
! First, say hello.. !
if NPC.V0 > 0 then
if NPC.V1 > 0 goto AFTER;
writeln( "You're back.. I thought you were going to leave me here.." );
else
writeln( "Are you here to help me?" );
endif;
! Now, set some variables..
NPC.V0 = 1; ! From know on, remember we've been here
:CHAT
L3 = getstr("Name","Job","Join","Bye");
if L3 = -1 then
writeln( "Don't leave me here.. Please.." );
goto CHAT; ! Pressed ESCape !
endif;
! Handle JOIN differently..
if L3 = 2 then
if group.size = 6 then
writeln( "Your party is full!" );
goto CHAT;
endif;
player.v1 = 1; ! 1 when I join the party, 2 if delivered to quester !
if NOT dotext( S0 ) then
writeln( "The sooner the better.." );
endif;
JOIN;
goto XSTOP;
endif;
! First, see if the keyword typed is in the character's text block !
if dotext( S0 ) goto CHAT;
! It didn't, so try the predefined ones..
on L3 goto CNAME, CJOB, CHAT, CSTOP;
! Nope, try a 'DEFAULT' line
if not dotext( "DEFAULT" ) then
writeln( "I don't know anything about that!" );
endif;
goto CHAT;
:CNAME
writeln( "My name is ", NPC.name, "." );
GOTO CHAT;
:CJOB
writeln( "I am a ", npc.type );
GOTO CHAT;
:CSTOP
writeln( "Don't leave me here.. Please.." );
goto XSTOP;
!
! This is the script for AFTER I've been rescued !
!
:AFTER
if npc.v1 = 1 then ! We JOINED, but were not delivered !
if NOT dotext( "DELIVER" ) then
writeln( "I need your help to return home.." );
endif;
goto CHAT;
endif;
:CHAT2
L3 = getstr("Name","Job","Join","Bye");
! First, see if the keyword typed is in the character's text block !
if dotext( S0 ) goto CHAT2;
! It didn't, so try the predefined ones..
on L3 goto CNAME2, CJOB2, CJOIN2, CSTOP2;
! Nope, try a 'DEFAULT' line
if not dotext( "DEFAULT" ) then
writeln( "I don't know anything about that!" );
endif;
goto CHAT2;
:CNAME2
writeln( "My name is ", NPC.name, "." );
GOTO CHAT2;
:CJOB2
writeln( "I am a ", npc.type );
GOTO CHAT2;
:CJOIN2
writeln( "Sorry. I've had my fill of adventure.." );
GOTO CHAT2;
:CSTOP2
writeln( "Nice talking to you.." );
goto XSTOP;
!------------------------------------------------------------------------!
!
:@DROP ! DROP a player from the group. !
!
!------------------------------------------------------------------------!
!
! Here, you can handle the 'vacate' action for the prisoner. Omit
! the CONTINUE command tells the system that even though we took some
! action, standard processing should be taken anyway. Change it to
! a 'STOP' if you do not want standard processing to take place.
!
! Note that execution starts with the '@DROP' tag, so no graphics
! has been displayed. A graphics is displayed when you '@TALK' only.
CONTINUE;
!-----------------------------------------------------------------!
! All STOPs now lead here so the screen can be restored if needed !
!-----------------------------------------------------------------!
:XSTOP
if npc.picture >= 0 then
paint(window); ! Assumes the picture fits in the window !
endif;
STOP;